用python为wallpaper engine批量添加本地视频 您所在的位置:网站首页 wallpaper engineer添加本地 用python为wallpaper engine批量添加本地视频

用python为wallpaper engine批量添加本地视频

2024-07-02 20:38| 来源: 网络整理| 查看: 265

wallpaper engine可以用本地视频作为桌面背景,如果电脑里有很多电影、电视剧、动画之类的想随机播放,一个一个添加还是很困难的,本文用python写一个脚本,修改wallpaper engine的配置文件,把指定目录下的视频全部添加进来。算是学习python的一个小例子吧。

#-*- coding: utf-8 -*- import json import os import io import re #输入一个目录,返回目录下所有的视频文件(包括子目录) def getFileList(file_dir): L = [] #筛选用的扩展名,列出wallpaper engine支持的视频文件类型 extNames=['.mp4','.wmv','.avi','.m4v','.mov','.webm','.mkv'] for root, dirs, files in os.walk(file_dir): for file in files: extName=os.path.splitext(file)[1] if extName in extNames: L.append(os.path.join(root, file)) return L #默认的wallpaper engine配置文件路径 filename="C:\Program Files (x86)\Steam\steamapps\common\wallpaper_engine\config.json" #用with而不是直接f=open(filename,'r'),可以保证文件打开失败程序继续运行 #然而对这个程序来说没什么用 with open(filename,'r') as f: #按utf-8编码打开json data=json.load(f,encoding="utf-8") #找到localfiles元素,这里的Noah是这台电脑的用户名 #在修改wallpaper engine的设置时,经常出现没有用户名而直接跳到general的情况 #我也不知道为什么,所以这里应该根据实际情况修改 listOri=data["Noah"]["general"]["localfiles"] #将本地视频列表与已有的列表合并 listNew=getFileList(u'D:\Download\视频')+listOri #去掉重复的文件路径 listN=[] for li in listNew: if li not in listN: listN.append(li) #将列表赋值给json元素 data["Noah"]["general"]["localfiles"]=listN #这里打开文件与上面不同,因为默认的open不能设置编码格式 with io.open(filename,'w', encoding='utf-8') as f: #ensure_ascii=False:json.dump默认忽略特殊字符 #indent=4:子元素缩进四格 str=json.dumps(data, ensure_ascii=False,indent=4) #将缩进替换为‘\t’,这是python3.2之前的写法,之后可以直接设置indent='\t' #从别处抄来的,没看懂 str = re.sub('\n +', lambda match: '\n' + '\t' * (len(match.group().strip('\n')) / 3), str) f.write(str)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有